#include <stdio.h>
#include <stdlib.h>

union data
{
    int a[10];
    int b[2][5];
};

void display(const union data);

void main()
{
    union data ab;
    int i;
    for (i = 0; i < 10; i++) // 输入21 22 23 24 25 26 27 28 29 30
        ab.a[i] = 21 + i;
    display(ab); // 输出21 22 23 24 25 26 27 28 29 30
    system("pause");
}

void display(const union data a)
{
    int i, j;
    for (i = 0; i < 2; i++)
        for (j = 0; j < 5; j++)
            printf("%3d", a.b[i][j]);
    printf("\n");
}

/*

使用const也可以限制函数修改传递数组的内容

声明一个联合，设置一个一维数组和一个二维数组作为其成员。
再声明一个联合变量“ab”，将数据输入一维数组，
然后调用函数display，传递这个联合变量并使用二维数组输出存入一维数组中的内容。

*/